#!/usr/bin/env python3
"""
漫画阅读器主启动脚本
"""

import os
import sys
import logging
from app.main import create_app

def setup_logging():
    """设置日志配置"""
    log_level = logging.DEBUG if os.environ.get('DEBUG', 'False').lower() == 'true' else logging.INFO
    
    # 创建日志目录
    log_dir = os.path.join(os.getcwd(), 'logs')
    os.makedirs(log_dir, exist_ok=True)
    
    # 配置日志格式
    log_format = '%(asctime)s [%(levelname)s] %(name)s: %(message)s'
    
    # 配置root logger
    logging.basicConfig(
        level=log_level,
        format=log_format,
        handlers=[
            logging.StreamHandler(sys.stdout),
            logging.FileHandler(os.path.join(log_dir, 'comic_reader.log'))
        ]
    )

def main():
    """主函数"""
    # 设置日志
    setup_logging()
    logger = logging.getLogger(__name__)
    
    try:
        # 创建Flask应用
        app = create_app()
        
        # 获取配置
        host = app.config.get('FLASK_HOST', '0.0.0.0')
        port = app.config.get('FLASK_PORT', 5000)
        debug = app.config.get('DEBUG', False)
        
        logger.info(f"启动漫画阅读器服务...")
        logger.info(f"监听地址: {host}:{port}")
        logger.info(f"调试模式: {debug}")
        logger.info(f"漫画路径: {app.config.get('COMIC_PATH', 'unknown')}")
        
        # 在生产环境使用waitress
        if not debug and os.environ.get('FLASK_ENV') == 'production':
            try:
                from waitress import serve
                logger.info("使用Waitress WSGI服务器")
                serve(app, host=host, port=port, threads=6)
            except ImportError:
                logger.warning("Waitress未安装，使用Flask开发服务器")
                app.run(host=host, port=port, debug=debug, threaded=True)
        else:
            # 开发环境使用Flask开发服务器
            logger.info("使用Flask开发服务器")
            app.run(host=host, port=port, debug=debug, threaded=True)
            
    except Exception as e:
        logger.error(f"启动失败: {e}")
        sys.exit(1)

if __name__ == '__main__':
    main()